Go MOC
Go MOC
Go语言知识索引,涵盖核心机制、并发编程、标准库、工具链、性能调优五大板块。
核心机制
- go mutex — Mutex源码详解:Lock/lockSlow
- 202505272221 获取到 mutex 的协程的公平性 — Go 1.18饥饿模式
- 202505282230 go-mutex 最大加锁 — 最大加锁限制
- 202505282236 go-饥饿模式的最大等待时间阈值 — 饥饿等待阈值
- 202506301725 读写锁 — RWMutex详解
- go-context — Context超时/取消/GDP RAL信号捕获
- go-chan — Channel传值与取值
- go-goroutine 进入自旋的条件 — 自旋条件
- 202506262333 go 协程调度的抢占机制 — 协程抢占
- 202506262313 获取 goid — 获取协程ID的两种方式
- 202506262318 go 的主协程id一直是1吗? — 主协程ID分析
- 202406141415 golang - GMP — GMP调度模型
- 202406132241 gomaxprocs 的作用 — GOMAXPROCS详解
- 202404182204 go想要在并发或者增量的标记算法中保证正确性,我们需要达成以下两种三色不变性 — GC三色不变性
- go-零值 — Go零值机制
- go-保留字 — Go保留字列表
并发编程
- go常用并发模式 — for-select/select-timeout等模式
- 202408192133 RateLimiter 使用方法 — 限流器Wait/Reserve
- 202507012309 go sync.WaitGroup — WaitGroup用法
- 202407101230 go context 超时控制在什么时候使用 — Context超时使用场景
- 如何优雅地重试 — 重试策略
- 超时控制和取消 - V2EX — 超时控制笔记
- go-goroutine-绑定cpu运行 — 协程CPU绑定
标准库与语法
- go-iota — iota枚举机制
- 202405042317 iota 的本质 — iota本质
- go-空结构体 — struct{}用法
- go - struct{} 空结构体类型 — 空结构体详解
- go-指针 — 值类型与引用类型
- go-泛型 — 泛型使用
- go-rune — rune类型
- go-strconv — 字符串转换
- go-sort — 排序
- go 对 slice进行稳定排序 — 稳定排序
- 202509112324 golang sort.Slice — sort.Slice详解
- go-时间处理 — 时间处理
- go 获取凌晨0点的时间戳 — 时间戳
- go 计算字符串中某个字符出现的次数 — 字符统计
- go-字符串拼接性能 — 拼接性能对比
- go-error — 错误处理
- 202405161116 go - error.Is 和 error.As 的使用 — 错误判断
- go-lo库 — lo工具库
- 202407111120 go - 防止接口在包外被继承 — 接口保护
- 202407111123 go - 保证struct实现 interface — 接口实现保证
- go-init函数 — init函数
- go-import — import机制
- 202405061043 go 抽象的一个例子 — 抽象示例
- 202405061044 在写管道的时候,注释一下什么地方写入还有什么地方读是个好的习惯 — 管道注释习惯
工具链与构建
- go-mod — Go Module
- 202505261106 关于 Go Module 依赖获取机制 — 依赖获取机制
- go-install — go install
- 202407221523 go stringer — stringer代码生成
- 202407251323 go flag 别在init中使用 — flag使用陷阱
- 202408021116 flag parse 必须调用后才能解析参数 — flag.Parse
- go-testing — 测试
- go-debug — VSCode调试配置
- golang-cobra — Cobra CLI框架
- gin-绑定和校验 — Gin参数绑定
- go-book-go语言设计与实现 — 书籍:Go语言设计与实现
- go-go语言高性能编程 — 书籍:高性能编程
性能调优
- 202601281645 pprof graph 查看 — pprof图解读
- 202511282239 go - GOMEMLIMIT 参数 — 内存限制参数
- 202406112224 go 在 race 编译时,不包括部分代码 — Race编译条件
- go-汇编指令 — LEADQ/MOVQ等汇编指令
数据库与IO
- go-gorm-FindInBatches — GORM批量查询
- 202408282021 如何在 go 连接 mysql 时使用本地时区 — MySQL时区
- go-exec — exec包:命令执行
- go-exec-run — Run/Wait方法
- go-下载文件 — 文件下载
流量回放
- 202407311627 goreplay 使用 — GoReplay使用方法
- 性能工具之 Goreplay 安装及入门使用-腾讯云开发者社区-腾讯云 — GoReplay安装
- 全链路压测实践 — 全链路压测
- 流量录制与回放技术实践 - 田小波⊰ - 博客园 — 流量录制回放
- 流量回放工具:goreplay实战_性能_环境_http — GoReplay实战
- 回放线上流量利器-GoReplay - CharyGao - 博客园 — GoReplay回放
- Capturing and replaying traffic · buger-goreplay Wiki — 官方Wiki
杂项
- tokio的异步运行时 — Rust tokio对比
- golang 深拷贝 — 深拷贝
- Go 1.23新特性前瞻 - Tony Bai — 新特性
- 202506061308 vscode There is no formatter for 'go' files installed 报错处理 — VSCode格式化